package com.hqq.behaviour.specification.creature;

import com.hqq.behaviour.specification.property.Color;
import com.hqq.behaviour.specification.property.Movement;
import com.hqq.behaviour.specification.property.Size;

/**
 * AbstractCreature
 * Created by heqianqian on 2017/6/20.
 */
public abstract class AbstractCreature implements Creature {

    private String name;
    private Size size;
    private Movement movement;
    private Color color;

    public AbstractCreature(String name, Size size, Movement movement, Color color) {
        this.name = name;
        this.size = size;
        this.movement = movement;
        this.color = color;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public Size getSize() {
        return size;
    }

    @Override
    public Movement getMovement() {
        return movement;
    }

    @Override
    public Color getColor() {
        return color;
    }

    @Override
    public String toString() {
        return "AbstractCreature{" +
                "name='" + name + '\'' +
                ", size=" + size +
                ", movement=" + movement +
                ", color=" + color +
                '}';
    }
}
